
@附加资源("../素材/附加")
类 启动窗口 : 窗口

	@布局配置([[根布局=真,宽度=-1,高度=-1,背景颜色=-1576716]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",纵向布局=真,可视=假]])
	变量 启动画面 : 线性布局
	@布局配置([[父布局=启动画面,宽度="-1",高度="1650",对齐方式=17]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,宽度="75dp",高度="75dp",圆角=32,卡片阴影=0]])
	变量 卡片布局1 : 卡片布局
	@布局配置([[父布局=卡片布局1,宽度="-1",高度="-1",图片资源="../素材/内置/png/图标.png",拉伸方式=6]])
	变量 图片框1 : 图片框
	@布局配置([[父布局=启动画面,宽度="-1",高度="-1",对齐方式=17,纵向布局=真]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局3,宽度="25dp",高度="25dp"]])
	变量 Lottie加载库1 : Lottie加载库
	@布局配置([[父布局=线性布局3,宽度="-1",粗体=真,对齐方式=17,内容="蓝莓助手极速版",@上外边距="15dp"]])
	变量 文本框1 : 文本框
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",可视=假]])
	变量 引导画面 : 相对布局
	@布局配置([[父布局=引导画面,宽度="-1",高度="-1",@位于某组件之上=1,对齐方式=17]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="250dp",高度="250dp"]])
	变量 Lottie加载库2 : Lottie加载库
	@布局配置([[父布局=引导画面,宽度="-1",高度="700",@位于布局底部=真,ID=1,对齐方式=17]])
	变量 线性布局4 : 线性布局
	@布局配置([[父布局=线性布局4,宽度="190dp",高度="45dp",字体大小="15",字体颜色=-1,对齐方式=17,粗体=真,内容="开始使用"]])
	变量 按钮_开始使用 : 文本框
	@布局配置([[父布局=引导画面,@位于布局中间=真,内容="轻快简约                   ",字体大小="18",字体颜色=-38294,粗体=真,ID=3]])
	变量 文本框3 : 文本框
	@布局配置([[父布局=引导画面,内容="              极致享受",字体大小="18",字体颜色=-10364742,粗体=真,@位于某组件之下=3,@与某组件左边平齐=3]])
	变量 文本框4 : 文本框
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",纵向布局=真,可视=真]])
	变量 无网络画面 : 线性布局
	@布局配置([[父布局=无网络画面,宽度="-1",高度="1400",对齐方式=17,纵向布局=真]])
	变量 线性布局6 : 线性布局
	@布局配置([[父布局=线性布局6,宽度="250dp",高度="250dp"]])
	变量 Lottie加载库3 : Lottie加载库
	@布局配置([[父布局=无网络画面,宽度="-1",高度="700",ID=1,对齐方式=17]])
	变量 线性布局7 : 线性布局
	@布局配置([[父布局=线性布局7,宽度="190dp",高度="45dp",字体大小="15",字体颜色=-1,对齐方式=17,粗体=真,内容="点击重试"]])
	变量 按钮_重新连接网络 : 文本框
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",可视=假]])
	变量 初始化界面 : 相对布局
	@布局配置([[父布局=初始化界面,宽度="-1",高度="400",对齐方式=17,内容="初次使用",粗体=真,字体大小="17",ID=1,@下外边距="400"]])
	变量 文本框2 : 文本框
	@布局配置([[父布局=初始化界面,宽度="600",高度="600",@位于某组件之下=1,@位于布局中间=真]])
	变量 漂亮的圆形拖动条1 : 漂亮的圆形拖动条
	@布局配置([[父布局=初始化界面,宽度="-1",高度="-1"]])
	变量 线性布局5 : 线性布局

	变量 时钟1:时钟
	变量 网络工具1:网络工具
	变量 平移动画1 : 偏移动画扩增?
	变量 平移动画2 : 偏移动画扩增?
	事件 启动窗口:创建完毕()
		
		本对象.显示标题栏 = 假
		本对象.屏幕方向 = 1
		本对象.状态栏颜色 = 文本到颜色值("#E7F0F4")
		本对象.导航栏颜色 = 文本到颜色值("#E7F0F4")
		本对象.状态栏字体黑色 = 真
		线性布局2.高度=(取屏幕高度(本对象)/3)*2
		Lottie加载库1.加载动画("Lottie/加载.json")
		Lottie加载库1.是否循环播放(真)
		平移动画1 = 偏移动画扩增.创建动画(-100,0,0,0)
		平移动画1.播放时间 = 1000
		平移动画1.保持最终状态 = 真
		平移动画2 = 偏移动画扩增.创建动画(100,0,0,0)
		平移动画2.播放时间 = 1000
		平移动画2.保持最终状态 = 真
		全局配置.缩放动画1 = 缩放动画扩增.创建动画(0.7,1,0.7,1,0.5,0.5,缩放动画扩增.比例值_基于组件,缩放动画扩增.比例值_基于组件)
		全局配置.缩放动画1.插值器 = 跳跃插值器.新建()
		全局配置.缩放动画1.播放时间 = 300
		全局配置.缩放动画1.保持最终状态 = 假
		文本框1.字体 = "font/2.ttf"
		DX全局.初始化(本对象)
		全局配置.软件名称=本对象.取程序包管理器().取APK包信息(取程序包管理器().取程序包信息(取自身包名()).应用信息.安装包路径).应用信息.获取标签(本对象.取程序包管理器())
		文本框1.内容 = 全局配置.软件名称+全局配置.软件标签

		全局配置.数据存储路径=取私有数据目录路径("")
		//全局配置.数据存储路径=取数据目录路径()
		全局配置.资源存储路径=取私有数据目录路径("")
		
		启动画面.可视 = 真
		引导画面.可视 = 假
		无网络画面.可视 = 假
		初始化界面.可视 = 假
		时钟1.时钟周期 = 1000
	结束 事件

	事件 时钟1:周期事件()
		时钟1.时钟周期 = 0
		如果 读入文本文件(全局配置.数据存储路径+"/配置文件/个人数据/个人数据.json")==""则
			启动画面.可视 = 假
			引导画面.可视 = 真
			无网络画面.可视 = 假
			初始化界面.可视 = 假
			线性布局4.高度=(取屏幕高度(本对象)/4)
			置圆角背景(按钮_开始使用,文本到颜色值("#75C8AE"),15,15,15,15)
			Lottie加载库2.加载动画("Lottie/引导画面.json")
			Lottie加载库2.是否循环播放(假)
			文本框3.字体 = "font/1.ttf"
			文本框4.字体 = "font/1.ttf"
			按钮_开始使用.字体 = "font/2.ttf"
			文本框3.播放动画(平移动画1)
			文本框4.播放动画(平移动画2)
		否则
			申请所有权限2({安卓权限.定位权限, "android.permission.ACCESS_COARSE_LOCATION"})
		结束 如果
	结束 事件

	事件 按钮_开始使用:被单击()
		媒体操作.播放assets音频(本对象,"mp3/弹窗.mp3")
		变量 消息:DX消息框
		变量 布局 : 协议布局
		布局.文本框1.字体 = "font/2.ttf"
		布局.文本框2.字体 = "font/2.ttf"
		布局.文本框4.字体 = "font/2.ttf"
		布局.文本框6.字体 = "font/2.ttf"
		布局.文本框7.字体 = "font/2.ttf"
		布局.文本框8.字体 = "font/2.ttf"
		布局.用户协议按钮.字体 = "font/2.ttf"
		布局.隐私政策按钮.字体 = "font/2.ttf"
		置圆角背景(布局.同意,文本到颜色值("#60D2FA"),15,15,15,15)
		置圆角背景(布局.不同意,文本到颜色值("#60D2FA"),15,15,15,15)
		消息.布局(布局)
		消息.样式(DX样式.IOS)
		消息.标题("用户协议及隐私政策")
		消息.可取消(假)
		消息.显示()
		事件 布局.用户协议按钮:被单击()
			协议界面.协议类型="用户协议"
			切换窗口(协议界面)
		结束 事件
		事件 布局.隐私政策按钮:被单击()
			协议界面.协议类型="隐私政策"
			切换窗口(协议界面)
		结束 事件

		事件 布局.同意:被单击()
			消息.关闭()
			申请所有权限2({安卓权限.定位权限, "android.permission.ACCESS_COARSE_LOCATION"})
		结束 事件
		事件 布局.不同意:被单击()
			消息.关闭()
			返回桌面()
			关闭程序()
		结束 事件
	结束 事件

	事件 启动窗口:申请权限完毕(请求码 : 整数,权限集 : 文本[],允许结果 : 整数[])
		如果 读入文本文件(全局配置.数据存储路径+"/配置文件/个人数据/个人数据.json")==""则
			文件操作.创建目录(全局配置.数据存储路径+"/配置文件/")
			文件操作.创建目录(取存储卡路径()+"/"+全局配置.软件名称+"/")
			全局配置.个人数据.置入("用户ID","空")
			全局配置.个人数据.置入("账号","空")
			全局配置.个人数据.置入("密码","空")
			全局配置.个人数据.置入("昵称","空")
			全局配置.个人数据.置入("头像","空")
			全局配置.个人数据.置入("QQ","空")
			全局配置.个人数据.置入("邮箱","空")
			全局配置.个人数据.置入("性别","空")
			全局配置.个人数据.置入("生日","空")
			全局配置.个人数据.置入("身份","空")
			全局配置.个人数据.置入("封禁","假")
			全局配置.个人数据.置入("封禁原因","空")
			全局配置.个人数据.置入("余额","0")
			全局配置.个人数据.置入("签到次数","0")
			全局配置.个人数据.置入("签到日期","空")
			全局配置.个人数据.置入("上传文件数量","0")
			全局配置.个人数据.置入("发布文章数量","0")
			全局配置.个人数据.置入("消息记录","空")
			全局配置.个人数据.置入("QQ互联","空")
			全局配置.个人数据.置入("签名","这个人很懒，什么都没留下")
			全局配置.个人数据.置入("介绍","空")
			全局配置.个人数据.置入("备注","空")
			全局配置.个人数据.置入("使用头像框","默认.png")
			全局配置.个人数据.置入("已拥有塔罗牌","[\"韦特塔罗牌\",\"经典塔罗牌\"]")
			全局配置.个人数据.置入("使用塔罗牌","韦特塔罗牌")
			全局配置.个人数据.置入("已拥有占星骰子","[\"简约蓝\",\"简约橙\"]")
			全局配置.个人数据.置入("使用占星骰子","简约蓝")
			全局配置.个人数据.置入("地址省","空")
			全局配置.个人数据.置入("地址市","空")
			全局配置.个人数据.置入("地址县","空")
			全局配置.个人数据.置入("地址镇","空")
			全局配置.个人数据.置入("详细地址","空")
			全局配置.个人数据.置入("会员时间","空")
			全局配置.个人数据.置入("是否会员","假")
			全局配置.个人数据.置入("上传视频数量","0")
			全局配置.个人数据.写出到文件(全局配置.数据存储路径+"/配置文件/个人数据/个人数据.json")
		否则
			全局配置.个人数据=读入文本文件(全局配置.数据存储路径+"/配置文件/个人数据/个人数据.json")
		结束 如果
		如果 文件是否存在(取存储卡路径()+"/"+全局配置.软件名称+"/"+全局配置.软件名称+".apk")==真 则
			删除文件(取存储卡路径()+"/"+全局配置.软件名称+"/"+全局配置.软件名称+".apk")
		结束 如果
		网络工具1.取网页源码(全局配置.配置文件链接)
	结束 事件

	事件 网络工具1:取网页源码结束(结果 : 文本,内容 : 字节[],cookie : 文本)
		全局配置.配置文件=结果
		全局配置.附加资源=全局配置.配置文件.取JSON对象("软件配置").取文本("附加资源")
		蓝莓接口.接口服务器=全局配置.配置文件.取JSON对象("软件配置").取文本("附加资源")+"MIUP/"
		社区接口.接口服务器=全局配置.配置文件.取JSON对象("软件配置").取文本("社区接口")
		全局配置.功能列表=全局配置.配置文件.取JSON对象("功能列表")
		变量 本地版本号:文本=本对象.取自身版本名称()
		如果 本地版本号==全局配置.配置文件.取JSON对象("软件配置").取文本("版本号") 则
			//不需要更新
			如果 读入文本文件(全局配置.数据存储路径+"/配置文件/版本号")=="" 则
				启动画面.可视 = 假
				引导画面.可视 = 假
				无网络画面.可视 = 假
				初始化界面.可视 = 真
				文本框2.高度 = (取屏幕高度(本对象)/6)
				初始化界面.下外边距(文本框2,(取屏幕高度(本对象)/9))
				文本框2.字体 = "font/2.ttf"
				文本框2.内容 = "初次使用"
				漂亮的圆形拖动条1.字体大小(0)
				漂亮的圆形拖动条1.是否可拖拽(假)
				漂亮的圆形拖动条1.设置当前进度(0)
				漂亮的圆形拖动条1.是否显示外环刻度(假)
				漂亮的圆形拖动条1.进度条颜色("#FF61EFBF")
				漂亮的圆形拖动条1.拖动球颜色("#FF9AF090")
				漂亮的圆形拖动条1.拖动条背景颜色("#FFF4F7FF")
				网络工具1.下载(全局配置.配置文件.取JSON对象("软件配置").取文本("附加资源")+全局配置.配置文件.取JSON对象("软件配置").取文本("基础文件"),取私有缓存目录路径()+"/基础文件.zip")
			否则
				如果 读入文本文件(全局配置.数据存储路径+"/配置文件/版本号")==全局配置.配置文件.取JSON对象("软件配置").取文本("基础文件号") 则
					判断维护()
				否则
					启动画面.可视 = 假
					引导画面.可视 = 假
					无网络画面.可视 = 假
					初始化界面.可视 = 真
					文本框2.高度 = (取屏幕高度(本对象)/6)
					初始化界面.下外边距(文本框2,(取屏幕高度(本对象)/8))
					文本框2.字体 = "font/2.ttf"
					文本框2.内容 = "软件优化"
					漂亮的圆形拖动条1.字体大小(0)
					漂亮的圆形拖动条1.是否可拖拽(假)
					漂亮的圆形拖动条1.设置当前进度(0)
					漂亮的圆形拖动条1.是否显示外环刻度(假)
					漂亮的圆形拖动条1.进度条颜色("#FF61EFBF")
					漂亮的圆形拖动条1.拖动球颜色("#FF9AF090")
					漂亮的圆形拖动条1.拖动条背景颜色("#FFF4F7FF")
					如果 删除文件(全局配置.资源存储路径+"/配置文件/基础文件")==真 则
						网络工具1.下载(全局配置.配置文件.取JSON对象("软件配置").取文本("附加资源")+全局配置.配置文件.取JSON对象("软件配置").取文本("基础文件"),取私有缓存目录路径()+"/基础文件.zip")
					结束 如果
				结束 如果
			结束 如果
		否则
			//需要更新
			切换窗口(软件更新窗口)
			播放切换动画(全局配置.切换动画_进入,全局配置.切换动画_退出)
		结束 如果
	结束 事件
	事件 网络工具1:正在下载(进度 : 小数)
		如果 进度.到整数() < 98 则
			漂亮的圆形拖动条1.设置当前进度(进度.到整数())
		否则
			漂亮的圆形拖动条1.设置当前进度(99)
		结束 如果
	结束 事件
	事件 网络工具1:下载结束(cookie : 文本)
		如果 ZIP解压(取私有缓存目录路径()+"/基础文件.zip",全局配置.资源存储路径+"/配置文件/")==真 则
			漂亮的圆形拖动条1.设置当前进度(100)
			如果 删除文件(取私有缓存目录路径()+"/基础文件.zip")==真 则
				写出文本文件(全局配置.数据存储路径+"/配置文件/版本号",全局配置.配置文件.取JSON对象("软件配置").取文本("基础文件号"))
				判断维护()
			结束 如果
		结束 如果
	结束 事件
	事件 网络工具1:下载失败()
		弹出提示("初始化失败,重试……")
		漂亮的圆形拖动条1.设置当前进度(0)
		启动画面.可视 = 假
		引导画面.可视 = 假
		无网络画面.可视 = 真
		初始化界面.可视 = 假
		线性布局6.高度=(取屏幕高度(本对象)/4)*2
		无网络画面.下外边距(线性布局6,(取屏幕高度(本对象)/8))
		置圆角背景(按钮_重新连接网络,文本到颜色值("#1E80CE"),15,15,15,15)
		Lottie加载库3.加载动画("Lottie/系统维护.json")
		Lottie加载库3.是否循环播放(真)
		按钮_重新连接网络.字体 = "font/2.ttf"
	结束 事件

	事件 网络工具1:取网页源码失败()
		弹出提示("没有网络")
		启动画面.可视 = 假
		引导画面.可视 = 假
		无网络画面.可视 = 真
		初始化界面.可视 = 假
		线性布局6.高度=(取屏幕高度(本对象)/4)*2
		无网络画面.下外边距(线性布局6,(取屏幕高度(本对象)/8))
		置圆角背景(按钮_重新连接网络,文本到颜色值("#1E80CE"),15,15,15,15)
		Lottie加载库3.加载动画("Lottie/系统维护.json")
		Lottie加载库3.是否循环播放(真)
		按钮_重新连接网络.字体 = "font/2.ttf"
	结束 事件
	事件 按钮_重新连接网络:被单击()
		按钮_重新连接网络.播放动画(全局配置.缩放动画1)
		网络工具1.取网页源码(全局配置.配置文件链接)
	结束 事件

	方法 判断维护()
		变量 是否维护:逻辑型=全局配置.配置文件.取JSON对象("软件配置").取JSON对象("系统维护").取逻辑值("关闭系统")
		如果 是否维护==假 则
			切换窗口(首页窗口)
			播放默认切换动画(2)
		否则
			切换窗口(系统维护)
			播放默认切换动画(2)
		结束 如果
	结束 方法


结束 类

类 协议布局:组件容器

	@布局配置([[根布局=真,宽度=-1,高度=-1,对齐方式=17]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="290dp",高度="-2",对齐方式=17,纵向布局=真,左内边距="40dp",右内边距="40dp"]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,宽度="-1",@下外边距="3dp",@上外边距="30dp"]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局3,字体大小="14",内容="欢迎使用蓝莓助手极速版，请您"]])
	变量 文本框1 : 文本框
	@布局配置([[父布局=线性布局2,宽度="-1",@下外边距="3dp"]])
	变量 线性布局4 : 线性布局
	@布局配置([[父布局=线性布局4,字体大小="14",内容="仔细阅读并理解"]])
	变量 文本框2 : 文本框
	@布局配置([[父布局=线性布局4,字体大小="14",内容="《用户协议》",字体颜色=-16611329]])
	变量 用户协议按钮 : 文本框
	@布局配置([[父布局=线性布局4,字体大小="14",内容="及"]])
	变量 文本框4 : 文本框
	@布局配置([[父布局=线性布局2,宽度="-1",@下外边距="3dp"]])
	变量 线性布局5 : 线性布局
	@布局配置([[父布局=线性布局5,字体大小="14",内容="《隐私政策》",字体颜色=-16611329]])
	变量 隐私政策按钮 : 文本框
	@布局配置([[父布局=线性布局5,字体大小="14",内容="，点击同意表示您"]])
	变量 文本框6 : 文本框
	@布局配置([[父布局=线性布局2,宽度="-1",@下外边距="3dp"]])
	变量 线性布局6 : 线性布局
	@布局配置([[父布局=线性布局6,字体大小="14",内容="已阅读并同意全部条款，感谢您"]])
	变量 文本框7 : 文本框
	@布局配置([[父布局=线性布局2,宽度="-1",@下外边距="50dp"]])
	变量 线性布局7 : 线性布局
	@布局配置([[父布局=线性布局7,字体大小="14",内容="的理解与支持！"]])
	变量 文本框8 : 文本框
	@布局配置([[父布局=线性布局2,宽度="-1",高度="40dp",对齐方式=17,粗体=真,字体大小="16",内容="同意",背景颜色=-10431750,字体颜色=-1,@下外边距="25dp"]])
	变量 同意 : 文本框
	@布局配置([[父布局=线性布局2,宽度="-1",高度="40dp",对齐方式=17,粗体=真,字体大小="16",内容="不同意",背景颜色=-10431750,字体颜色=-1,@下外边距="30dp"]])
	变量 不同意 : 文本框

结束 类

类 协议界面:窗口

	@布局配置([[根布局=真,宽度=-1,高度=-1,纵向布局=真,背景颜色=-15329245]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="-1",高度="50dp"]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",内容="用户协议",对齐方式=17,粗体=真,字体大小="16",字体颜色=-1]])
	变量 文本框1 : 文本框
	@布局配置([[父布局=相对布局1,宽度="50dp",高度="50dp",对齐方式=17]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,宽度="25dp",高度="25dp",图片资源="../素材/内置/png/返回.png"]])
	变量 图片框1 : 图片框
	@布局配置([[父布局=线性布局1,宽度="-1",高度="-1"]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局3,宽度="-1",高度="-1",@左外边距="20dp",@右外边距="20dp",@上外边距="8dp",@下外边距="20dp",显示进度条=假,可访问本地文件=真,背景颜色=-15329245]])
	变量 浏览框1 : 浏览框

	@静态
	变量 协议类型:文本
	事件 协议界面:创建完毕()
		本对象.显示标题栏 = 假
		本对象.屏幕方向 = 1
		本对象.状态栏颜色 = 文本到颜色值("#161823")
		本对象.导航栏颜色 = 文本到颜色值("#161823")
		本对象.状态栏字体黑色 = 假
		文本框1.内容 = 协议类型
		浏览框1.显示进度条 = 假
		浏览框1.网址 = "file:///android_asset/html/"+协议类型+".htm"
	结束 事件	

	//用户在组件上单击事件
	事件 线性布局2:被单击()
		返回键被按下()
	结束 事件

	@虚拟方法
	方法 返回键被按下()
		父对象.返回键被按下()
		关闭窗口()
		播放默认切换动画(2)
	结束 方法
结束 类

类 软件更新窗口:窗口

	@布局配置([[根布局=真,宽度=-1,高度=-1,右内边距="18dp",左内边距="18dp",背景颜色=-1576716,纵向布局=真]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="-1",高度="55dp",@上外边距="15dp"]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",对齐方式=16]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,宽度="30dp",高度="30dp"]])
	变量 Lottie加载库1 : Lottie加载库
	@布局配置([[父布局=线性布局2,内容="软件更新",粗体=真,字体颜色=-16777216,@左外边距="10dp"]])
	变量 文本框1 : 文本框
	@布局配置([[父布局=相对布局1,宽度="-1",高度="1dp",背景颜色=-2894893,@位于布局底部=真]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="-1",高度="-1"]])
	变量 相对布局2 : 相对布局
	@布局配置([[父布局=相对布局2,宽度="-1",高度="-1",@位于某组件之上=1]])
	变量 线性布局5 : 线性布局
	@布局配置([[父布局=线性布局5,宽度="-1",高度="-1",显示滑块条=假,始终显示快速滚动条=假,列数=1]])
	变量 自定义宫格列表框1 : 自定义宫格列表框
	@布局配置([[父布局=相对布局2,宽度="-1",对齐方式=17,@位于布局底部=真,@下外边距="50dp",ID=1,@上外边距="10dp"]])
	变量 线性布局4 : 线性布局
	@布局配置([[父布局=线性布局4,宽度="190dp",高度="45dp",对齐方式=17,内容="立即更新",粗体=真,字体颜色=-1]])
	变量 按钮_开始更新 : 文本框

	变量 更新内容集合:文本集合
	变量 网络工具1:网络工具
	变量 下载弹窗:DX等待框
	事件 软件更新窗口:创建完毕()
		本对象.显示标题栏 = 假
		本对象.屏幕方向 = 1
		本对象.状态栏颜色 = 文本到颜色值("#E7F0F4")
		本对象.导航栏颜色 = 文本到颜色值("#E7F0F4")
		本对象.状态栏字体黑色 = 真

		置圆角背景(按钮_开始更新,文本到颜色值("#75C8AE"),15,15,15,15)
		Lottie加载库1.加载动画("Lottie/更新标题图标.json")
		Lottie加载库1.是否循环播放(假)
		文本框1.字体 = "font/3.ttf"
		按钮_开始更新.字体 = "font/3.ttf"

		更新内容集合.添加成员(全局配置.配置文件.取JSON对象("软件配置").取文本("更新标题"))
		变量 更新内容数组:JSON数组=全局配置.配置文件.取JSON对象("软件配置").取JSON数组("更新内容")
		循环(更新内容索引, 0, 更新内容数组.长度)
			更新内容集合.添加成员(更新内容数组.取文本(更新内容索引))
		结束 循环
		自定义宫格列表框1.更新项目(更新内容集合.长度)
	结束 事件

	事件 自定义宫格列表框1:加载布局(索引 : 整数,项目布局 : 组件容器) : 组件容器
		如果 索引==0 则
			变量 项目布局1:更新标题块
			项目布局1.Lottie加载库1.加载动画("Lottie/更新标题.json")
			项目布局1.Lottie加载库1.是否循环播放(假)
			项目布局1.文本框1.内容 = 更新内容集合[索引]
			返回 项目布局1
		否则
			变量 项目布局1:更新内容块
			项目布局1.文本框1.内容 = 更新内容集合[索引]
			返回 项目布局1
		结束 如果
	结束 事件

	事件 按钮_开始更新:被单击()
		按钮_开始更新.播放动画(全局配置.缩放动画1)
		如果 全局配置.配置文件.取JSON对象("软件配置").取逻辑值("内置更新")==假 则
			打开Uri(全局配置.配置文件.取JSON对象("软件配置").取文本("更新链接"))
		否则
			下载弹窗.内容("准备下载")
			下载弹窗.显示()
			网络工具1.下载(全局配置.配置文件.取JSON对象("软件配置").取文本("更新链接"),取存储卡路径()+"/"+全局配置.软件名称+"/"+全局配置.软件名称+".apk")
		结束 如果
	结束 事件

	事件 网络工具1:正在下载(进度 : 小数)
		如果 进度.到整数() < 98 则
			下载弹窗.进度(进度/100)
			下载弹窗.内容(进度.到整数().到文本()+"%")
		否则
			下载弹窗.进度(99)
			下载弹窗.内容("99%")
		结束 如果

	结束 事件

	事件 网络工具1:下载失败()
		提交到新线程运行()
		下载弹窗.类型(DX等待类型.警告)
		下载弹窗.内容("下载失败")
		延时(1800)
		下载弹窗.关闭()
		结束提交到新线程()
	结束 事件

	事件 网络工具1:下载结束(cookie : 文本)
		提交到新线程运行()
		下载弹窗.类型(DX等待类型.成功)
		下载弹窗.内容("下载成功")
		延时(1800)
		下载弹窗.关闭()
		结束提交到新线程()
		安装应用(本对象,取存储卡路径()+"/"+全局配置.软件名称+"/"+全局配置.软件名称+".apk")
	结束 事件

	变量 上次返回:长整数 = 0
	@虚拟方法
	方法 返回键被按下()
		如果 (取当前时间戳() - 上次返回) < 2000
			返回桌面()
			关闭程序()
		否则
			弹出提示("再按一次退出！")
			上次返回 = 取当前时间戳()
		结束 如果
	结束 方法
结束 类

类 系统维护:窗口

	@布局配置([[根布局=真,宽度=-1,高度=-1,右内边距="18dp",左内边距="18dp",背景颜色=-1576716,纵向布局=真]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="-1",高度="55dp",@上外边距="15dp"]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度="-1",高度="-1",对齐方式=17]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,内容="系统维护",粗体=真,字体颜色=-16777216,@左外边距="10dp",字体大小="20"]])
	变量 文本框1 : 文本框
	@布局配置([[父布局=相对布局1,宽度="-1",高度="1dp",背景颜色=-2894893,@位于布局底部=真]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="-1",高度="-1"]])
	变量 相对布局2 : 相对布局
	@布局配置([[父布局=相对布局2,宽度="-1",高度="-1",@位于某组件之上=1]])
	变量 线性布局5 : 线性布局
	@布局配置([[父布局=线性布局5,宽度="-1",高度="-1",显示滑块条=假,始终显示快速滚动条=假,列数=1]])
	变量 自定义宫格列表框1 : 自定义宫格列表框
	@布局配置([[父布局=相对布局2,宽度="-1",对齐方式=17,@位于布局底部=真,@下外边距="50dp",ID=1,@上外边距="10dp"]])
	变量 线性布局4 : 线性布局
	@布局配置([[父布局=线性布局4,宽度="190dp",高度="45dp",对齐方式=17,内容="确定",粗体=真,字体颜色=-1]])
	变量 按钮_确定 : 文本框

	变量 维护内容集合:文本集合
	事件 系统维护:创建完毕()
		本对象.显示标题栏 = 假
		本对象.屏幕方向 = 1
		本对象.状态栏颜色 = 文本到颜色值("#E7F0F4")
		本对象.导航栏颜色 = 文本到颜色值("#E7F0F4")
		本对象.状态栏字体黑色 = 真

		文本框1.内容 = 全局配置.配置文件.取JSON对象("软件配置").取JSON对象("系统维护").取文本("标题")
		置圆角背景(按钮_确定,文本到颜色值("#75C8AE"),15,15,15,15)
		文本框1.字体 = "font/3.ttf"
		按钮_确定.字体 = "font/3.ttf"

		维护内容集合.添加成员(全局配置.配置文件.取JSON对象("软件配置").取JSON对象("系统维护").取文本("简介"))
		变量 维护内容数组:JSON数组=全局配置.配置文件.取JSON对象("软件配置").取JSON对象("系统维护").取JSON数组("内容")
		循环(维护内容索引, 0, 维护内容数组.长度)
			维护内容集合.添加成员(维护内容数组.取文本(维护内容索引))
		结束 循环
		自定义宫格列表框1.更新项目(维护内容集合.长度)
	结束 事件

	事件 自定义宫格列表框1:加载布局(索引 : 整数,项目布局 : 组件容器) : 组件容器
		如果 索引==0 则
			变量 项目布局1:维护标题块
			项目布局1.Lottie加载库1.加载动画("Lottie/系统维护.json")
			项目布局1.Lottie加载库1.是否循环播放(真)
			项目布局1.文本框1.内容 = 维护内容集合[索引]
			返回 项目布局1
		否则
			变量 项目布局1:更新内容块
			项目布局1.文本框1.内容 = 维护内容集合[索引]
			返回 项目布局1
		结束 如果
	结束 事件

	事件 按钮_确定:被单击()
		按钮_确定.播放动画(全局配置.缩放动画1)
	结束 事件

	事件 按钮_确定:动画播放完毕()
		返回桌面()
		关闭程序()
	结束 事件

结束 类

类 维护标题块:组件容器

	@布局配置([[根布局=真,宽度=-1,高度="-2",对齐方式=17,纵向布局=真,背景颜色=-1576716]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="95dp",高度="95dp",@上外边距="15dp"]])
	变量 Lottie加载库1 : Lottie加载库
	@布局配置([[父布局=线性布局1,对齐方式=17,内容="维护标题",@下外边距="20dp",@上外边距="10dp",粗体=真,字体颜色=-16777216]])
	变量 文本框1 : 文本框

结束 类

类 更新标题块:组件容器

	@布局配置([[根布局=真,宽度=-1,高度="-2",对齐方式=17,纵向布局=真,背景颜色=-1576716]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="55dp",高度="55dp",@上外边距="15dp"]])
	变量 Lottie加载库1 : Lottie加载库
	@布局配置([[父布局=线性布局1,对齐方式=17,内容="更新标题",@下外边距="20dp",@上外边距="10dp",粗体=真,字体颜色=-16777216]])
	变量 文本框1 : 文本框

结束 类

类 更新内容块:组件容器

	@布局配置([[根布局=真,宽度=-1,高度="-2",背景颜色=-1576716]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度="-1",高度="-2",圆角=24,卡片阴影=0,@下外边距="10dp",@上外边距="3dp",@左外边距="3dp",@右外边距="3dp"]])
	变量 卡片布局1 : 卡片布局
	@布局配置([[父布局=卡片布局1,宽度="-1",高度="-2",上内边距="8dp",下内边距="8dp",右内边距="10dp",左内边距="10dp"]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,宽度="-1",高度="-2",内容="修复部分已知BUG",粗体=真]])
	变量 文本框1 : 文本框

结束 类